package main

import "fmt"

func main5() {
	//切片copy
	//Go语言内建的copy()函数可以迅速地将一个切片的数据复制到另外一个切片空间中
	a := []int{1, 2, 3, 4, 5}
	b := make([]int, 5, 5)
	var c []int = b
	copy(b, a)
	b[0] = 100
	fmt.Println(a)
	fmt.Println(b)
	//这个时候，拷贝完了之后，两者不指向同一个底层数组
	fmt.Println(c)

	//copy是浅拷贝，就是传值

	//:= 是引用传递，传引用；由于切片是引用类型，
	//所以a和b其实都指向了同一块内存地址。修改b的同时a的值也会发生变化。
}

func main() {
	// 从切片中删除元素
	e := []string{"北京", "上海", "广州", "深圳"}
	// 要删除索引为2的元素
	e = append(e[:2], e[3:]...)
	fmt.Println(e)

	//删除index元素
	//append(a[:index], a[index+1:]...)
}
